//
//  EmailRegisterViewController.m
//  bitcoin
//
//  Created by caiyajun on 2018/5/7.
//  Copyright © 2018年 比特币. All rights reserved.
//

#import "EmailRegisterViewController.h"
#import "LCGrayButton.h"
#import "MainTabBarController.h"
#define mAlphaNum @"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_"
@interface EmailRegisterViewController ()
@property (weak, nonatomic) IBOutlet UIButton *sureButton;
@property (weak, nonatomic) IBOutlet UITextField *phoneTF;
@property (weak, nonatomic) IBOutlet UITextField *messageTF;
@property (weak, nonatomic) IBOutlet UITextField *otherPasswordTF;
@property (weak, nonatomic) IBOutlet UIButton *eyeBtn;
- (IBAction)changeEyeAction:(UIButton *)sender;
@property (weak, nonatomic) IBOutlet LCGrayButton *sendCodeBtn;
@property (weak, nonatomic) IBOutlet UIButton *changeDelegateBtn;
- (IBAction)changeDelegateAction:(UIButton *)sender;

- (IBAction)useDelegateAction;
- (IBAction)registerSuccessAction;
@property (weak, nonatomic) IBOutlet UITextField *invite_codelabel;
@end

@implementation EmailRegisterViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    UIBarButtonItem *back = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"arrowleft-icon"] style:UIBarButtonItemStylePlain target:self action:@selector(backAction:)];
    self.navigationItem.leftBarButtonItem = back;
    
    
    [_phoneTF setValue:[UIColor colorWithHexString:@"#616372"] forKeyPath:@"_placeholderLabel.textColor"];
    [_messageTF setValue:[UIColor colorWithHexString:@"#616372"] forKeyPath:@"_placeholderLabel.textColor"];
    [_otherPasswordTF setValue:[UIColor colorWithHexString:@"#616372"] forKeyPath:@"_placeholderLabel.textColor"];
    [_invite_codelabel setValue:[UIColor colorWithHexString:@"#616372"] forKeyPath:@"_placeholderLabel.textColor"];
    [_eyeBtn setImage:[UIImage imageNamed:@"open-icon"] forState:UIControlStateNormal];
    [_eyeBtn setImage:[UIImage imageNamed:@"close-icon"] forState:UIControlStateSelected];
    _eyeBtn.selected =YES;
    self.otherPasswordTF.secureTextEntry =YES;
    
    [_changeDelegateBtn setImage:[UIImage imageNamed:@"agreer-iconn1"] forState:UIControlStateNormal];
    [_changeDelegateBtn setImage:[UIImage imageNamed:@"agreer-icon"] forState:UIControlStateSelected];
    [self.sendCodeBtn addTarget: self action:@selector(startTime) forControlEvents:UIControlEventTouchUpInside];
    
    [self.sureButton setBackgroundImage:[UIImage imageWithColor:RGBColor(86, 54, 157)] forState:(UIControlStateHighlighted)];
    // Do any additional setup after loading the view.
}
- (void)backAction:(UIBarButtonItem *)sender {
    [self.navigationController popViewControllerAnimated:YES];
}


- (IBAction)changeEyeAction:(UIButton *)sender {
    self.otherPasswordTF.enabled = NO;
    self.otherPasswordTF.secureTextEntry = !sender.selected;
    sender.selected = !sender.selected;
    self.otherPasswordTF.enabled = YES;
}

-(void)startTime{
    
    DebugLog(@"我点击了.... ");
    [self.view endEditing:YES];
    if (self.phoneTF.text.length==0) {
        [MBProgressHUD showError:@"请输入帐号"];
        return;
    }
    if ( ![CheckUtil validateEmail:self.phoneTF.text]) {
        [MBProgressHUD showError:@"请输入有效的邮箱地址!"];
        return;
    }
    
    NSDictionary *param = @{@"accept_device" : self.phoneTF.text,
                            @"site" : @"1"
                            };
    [LSRequestManager postRequestWithURL:HUOBI(@"api/auth/sendYzm")
                                  params:param
                                 success:^(NSDictionary *responseData) {
                                     if ([responseData[@"ret"] integerValue ] == 0) {
                                         [self changeShow];
                                     } else {
                                         [MBProgressHUD showError:responseData[@"msg"]];
                                     }
                                 }
                                 failure:^(NSError *error) {
                                     
                                 }
                                 showHUD:NO];
    
    
    
    
    
}

- (IBAction)changeDelegateAction:(UIButton *)sender {
    
    sender.selected = !sender.selected;
    
}

- (IBAction)useDelegateAction {
    [self performSegueWithIdentifier:@"emailuseDelegateSegue" sender:nil];
}

- (IBAction)registerSuccessAction {
    [self.view endEditing:YES];
    if (self.phoneTF.text.length==0) {
        [MBProgressHUD showError:@"请输入帐号"];
        return;
    }
    NSRange range = [self.phoneTF.text rangeOfString:@" "];
    if (range.location != NSNotFound) {
        [MBProgressHUD showError:@"请输入邮箱"];
        return;
    }
    if ( ![CheckUtil validateEmail:self.phoneTF.text]) {
        [MBProgressHUD showError:@"请输入有效的邮箱地址!"];
        return;
    }
    
    
    
    
    if (self.messageTF.text.length==0) {
        [MBProgressHUD showError:@"请输入验证码"];
        return;
    }
    NSRange range1 = [self.messageTF.text rangeOfString:@" "];
    if (range1.location != NSNotFound) {
        [MBProgressHUD showError:@"请输入验证码"];
        return;
    }
    
    
    
    if (self.otherPasswordTF.text.length==0) {
        [MBProgressHUD showError:@"请输入密码"];
        return;
    }
    NSRange range2 = [self.otherPasswordTF.text rangeOfString:@" "];
    if (range2.location != NSNotFound) {
        [MBProgressHUD showError:@"请输入密码"];
        return;
    }
    
    NSCharacterSet *cs = [[NSCharacterSet characterSetWithCharactersInString:mAlphaNum] invertedSet];
    NSString *filtered = [[self.otherPasswordTF.text componentsSeparatedByCharactersInSet:cs] componentsJoinedByString:@""];
    BOOL canChange = [self.otherPasswordTF.text isEqualToString:filtered];
    if (!canChange) {
        [MBProgressHUD showError:@"密码只能由大小写字母、数字及_符号组成"];
        return;
    }
    
    
    NSString * regex = @"(?![0-9A-Z]+$)(?![0-9a-z]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,12}$";
    NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];
    BOOL result = [pred evaluateWithObject:self.otherPasswordTF.text];
    if (!result){
        [MBProgressHUD showError:@"密码必须为8-12位，并最少包含大小写字母、数字"];
        return;
    }
    
    
    
    
    
    
    if (!self.changeDelegateBtn.selected) {
        [MBProgressHUD showError:@"请仔细阅读并同意《用户服务协议》"];
        return;
    }
    NSDictionary *param = @{@"email" : self.phoneTF.text,
                            @"reg_type" : @"1",
                            @"yzm" : self.messageTF.text,
                            @"login_pwd" : self.otherPasswordTF.text,
                            @"device" : @"2",
                            @"invite_code" : self.invite_codelabel.text?self.invite_codelabel.text:@""
                            };
    [LSRequestManager postRequestWithURL:HUOBI(@"api/auth/emailRegister")
                                  params:param
                                 success:^(NSDictionary *responseData) {
                                     if ([responseData[@"ret"] integerValue ] == 0) {
                                         [UserDefaults setObject:responseData[@"data"][@"token"] forKey:K_LOGININFO_TOKEN];
                                         [UserDefaults synchronize];
                                         
                                         
                                         
                                         UIWindow *window = [[[UIApplication sharedApplication] delegate] window];
                                         MainTabBarController *mainView = [[MainTabBarController alloc] init];
                                         window.rootViewController = mainView;
                                     } else {
                                         [MBProgressHUD showError:responseData[@"msg"]];
                                     }
                                 }
                                 failure:^(NSError *error) {
                                     
                                 }
                                 showHUD:NO];
}
-(void)changeShow{
    __block int timeout = 59; //倒计时时间
    dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
    dispatch_source_t _timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0,queue);
    dispatch_source_set_timer(_timer,dispatch_walltime(NULL, 0),1.0*NSEC_PER_SEC, 0); //每秒执行
    dispatch_source_set_event_handler(_timer, ^{
        if(timeout<=0){ //倒计时结束，关闭
            dispatch_source_cancel(_timer);
            dispatch_async(dispatch_get_main_queue(), ^{
                //设置界面的按钮显示 根据自己需求设置
                [self.sendCodeBtn setTitle:@"发送验证码" forState:UIControlStateNormal];
                self.sendCodeBtn.enabled = YES;
            });
        }else{
            //            int minutes = timeout / 60;
            int seconds = timeout % 60;
            NSString *strTime = [NSString stringWithFormat:@"%.2d", seconds];
            dispatch_async(dispatch_get_main_queue(), ^{
                //设置界面的按钮显示 根据自己需求设置
                [self.sendCodeBtn setTitle:[NSString stringWithFormat:@"重新获取%@秒",strTime] forState:UIControlStateNormal];
                self.sendCodeBtn.enabled = NO;
                
            });
            timeout--;
            
        }
    });
    dispatch_resume(_timer);
}
@end
